package com.lk.sys.dao;

import com.lk.sys.common.vo.Node;
import com.lk.sys.entity.SysMenu;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

@Mapper
public interface SysMenuDao {

    /**
     * 菜单添加界面，数据库持久化
     * @author Lukang
     * @date 2021/11/11 下午9:16
     * @param entity
     * @return int
     */
    int insertObject(SysMenu entity);

    /**
     * 查询sys_menu中的id，parentId，name用于zTree对象中的内容
     * @author Lukang
     * @date 2021/11/8 下午9:02
     * @return java.util.List<com.lk.sys.common.vo.Node>
     */
    @Select("select id, parentId, name from sys_menus")
    List<Node> findZtreeMenuNodes();


    /**
     * 基于菜单id获得对应id下的子菜单的个数
     * @author Lukang
     * @date 2021/11/4 下午9:39
     * @param id
     * @return int
     */
    @Select("select count(*) from sys_menus where parentId=#{id}")
    int getChildCount(Integer id);

    /**
     * 基于菜单id删除菜单记录
     * @author Lukang
     * @date 2021/11/4 下午9:37
     * @param id
     * @return int
     */
    @Delete("delete from sys_menus where id=#{id}")
    int deleteObject(Integer id);

    /**
     * 查询所有菜单信息，
     * @author Lukang
     * @date 2021/11/4 下午7:55
     * @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
     */
    List<Map<String, Object>> findObjects();
}
